package com.example.recite_words.util;

import android.content.Context;
import android.database.Cursor;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CursorAdapter;
import android.widget.TextView;

import com.example.recite_words.R;

public class MyListViewCursorAdapter extends CursorAdapter {
    // 定义布局加载器
    private LayoutInflater layoutInflater;

    /**
     * 构造方法
     * @param context 传入上下文
     * @param c 传入Cursor游标
     *
     */
    public MyListViewCursorAdapter(Context context, Cursor c) {

        /**
         * 主要把这些值传递给父类的构造方法，就会自动的传递到 newView(Context context, Cursor cursor, ViewGroup parent)
         *                                              bindView(View view, Context context, Cursor cursor)
         */
        super(context, c);

        layoutInflater = LayoutInflater.from(context);
    }

    /**
     * Item布局文件的处理
     * @param context 传入上下文
     * @param cursor
     * @param parent
     * @return
     */
    @Override
    public View newView(Context context, Cursor cursor, ViewGroup parent) {
        // Item布局文件，要显示的Item，在这里处理
        View view = layoutInflater.inflate(R.layout.search_item, null);
        return view;
    }

    /**
     * 把Cursor获取的数据和布局文件进行绑定
     * @param view 此view 是上面 newView方法返回的View
     * @param context 上下文
     * @param cursor 游标
     */
    @Override
    public void bindView(View view, Context context, Cursor cursor) {
        // 获取到布局的控件
        TextView tvId =  view.findViewById(R.id.search);

        // 获取Cursor里面的数据
        String word = cursor.getString(cursor.getColumnIndexOrThrow("words"));


        // 把数据绑定到控件里面去
        tvId.setText(word); // setText(数据必须是字符串);

    }
}
